using System;
using System.Collections.Generic;
using System.Text;

namespace Gestion.Core.Data.Generic
{
    public interface IGenericReadOnlyDao<T, ID>
    {
        /// <summary>
        /// Gets an object by its primary key
        /// </summary>
        /// <param name="id">The primary key</param>
        /// <returns>The object instance</returns>
        T GetById(ID id);

        /// <summary>
        /// Returns all the objects backed by this Dao
        /// </summary>
        /// <returns>A List of Objects</returns>
        IList<T> FindAll();

        /// <summary>
        /// Returns the number of objects backed by this Dao
        /// </summary>
        /// <returns></returns>
        int CountAll();

        /// <summary>
        /// Returns all the objects backed by this Dao in a paged way
        /// </summary>
        /// <param name="firstResult">First result to be returned</param>
        /// <param name="maxResults">Last result to be returned</param>
        /// <returns>A List of Objects</returns>

  
             

    }
}
